chore: move package publishing to GitHub Packages with latest/beta/test channels#60
Closed
chore: move package publishing to GitHub Packages with latest/beta/test channels#60
Conversation
There was a problem hiding this comment.
Pull request overview
This PR migrates package publishing from the public npm registry to GitHub Packages and introduces branch/PR-based release channels (latest, beta, test) to allow safe integration testing without impacting production consumers.
Changes:
- Add
publishConfig.registryto publish@ozmap/loggertohttps://npm.pkg.github.com. - Replace legacy npm publish workflows with a single GitHub Packages workflow that publishes
latest/beta/testdepending on branch or PR label. - Update README with GitHub Packages authentication, install instructions, and channel/publishing documentation.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| package.json | Configures publishing to GitHub Packages via publishConfig.registry. |
| README.md | Documents GitHub Packages auth setup and the new latest/beta/test publishing channels. |
| .github/workflows/publish-github-packages.yml | Adds unified publish workflow with branch/PR label-based channel logic and stable-version dedupe. |
| .github/workflows/npm-publish.yml | Removes old npmjs publish workflow. |
| .github/workflows/npm-publish-2.yml | Removes old beta publish workflow targeting npmjs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+5
to
+8
| branches: | ||
| - master | ||
| - develop | ||
| - development |
Comment on lines
+198
to
+202
| | Origem | Tag npm | Objetivo | | ||
| |--------|---------|----------| | ||
| | `master` | `latest` | Release de produção | | ||
| | `develop` | `beta` | Release contínua de desenvolvimento | | ||
| | Pull Request com label `deployToTest` | `test` | Release efêmera para validação | |
| env: | ||
| NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| run: | | ||
| if npm view @ozmap/logger@"${{ steps.publish_meta.outputs.package_version }}" version --registry=https://npm.pkg.github.com >/dev/null 2>&1; then |
Contributor
Author
|
Atualizei a PR para endereçar os pontos levantados no review:
Validação local executada nesta branch:
Agora a PR está rerodando os checks no commit mais recente. |
Contributor
Author
|
desnecessario migrar o pacote publico para o github |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contexto
Esta PR recria o fluxo de publicação do pacote para usar o GitHub Packages em vez do npm público como registry principal.
A ideia central é permitir que o time consiga publicar e validar versões de teste do pacote sem encostar no canal de produção (
latest). Com isso, o desenvolvedor pode instalar uma versão candidata diretamente em outra aplicação, validar comportamento real de integração e só depois promover uma versão estável para produção.Os canais agora ficam separados por contexto:
masterpublica emlatestdeveloppublica embetadeployToTestpublicam emtestO que foi feito
Publicação no GitHub Packages
https://npm.pkg.github.compublishConfig.registrynopackage.jsonGITHUB_TOKENpara publicação no GitHub ActionsCanais de release por branch e PR
masterpublica com a taglatestdeveloppublica com a tagbetatestsomente quando possuir o labeldeployToTestProteção do canal estável
O objetivo principal desta PR é garantir que um dev consiga testar o pacote em ambiente real sem quebrar o
latest.Para isso:
latestcontinua reservado exclusivamente para produçãotestdevelopvão parabetalatestsó acontecem com a versão explícita dopackage.jsonEsse desenho evita que validações temporárias contaminem o consumo padrão do pacote em produção.
Versionamento seguro para canais temporários
Para evitar colisão de versões no registry:
latestusa exatamente a versão definida nopackage.jsonbetarecebe sufixo automático de buildtestrecebe sufixo com número da PR e execução do workflowExemplos:
0.2.8emlatest0.2.8-beta.145.1embeta0.2.8-pr.87.145.1emtestComo isso passa a funcionar
Produção
package.jsonmasterlatestDesenvolvimento contínuo
developbetaTeste isolado de pacote via PR
deployToTesttestlatestSe for necessário publicar novamente para a mesma PR, basta:
deployToTestComo o dev testa sem quebrar o
latestO fluxo foi desenhado exatamente para este cenário.
Em vez de promover tudo cedo demais para produção, o dev pode:
deployToTesttest@ozmap/logger@testno projeto consumidordevelopoumasterCom isso, o canal
latestcontinua limpo, previsível e reservado para consumo estável.Documentação adicionada
O README foi atualizado com:
latest,betaetestdeployToTestnpm packImportante sobre pacote público
Embora o repositório seja open source e o pacote possa ficar público no GitHub Packages, a instalação via npm continua exigindo autenticação no registry do GitHub.
Por isso a documentação foi atualizada para orientar o uso de
~/.npmrccom um PAT classic contendo pelo menosread:packages.Como testar esta PR
Validar workflow
deployToTesttestValidar consumo do pacote
Configurar
~/.npmrc:Instalar a versão de teste:
Verificar dist-tags:
Validar pacote local sem publicar
Riscos e observações
latestdepende de version bump explícito nopackage.jsonResultado esperado
Depois desta PR:
latestfica protegido como canal estáveldevelopcontinua servindo como trilha de entrega contínua combeta